{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#贝叶斯岭回归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在*用岭回归弥补线性回归的不足*主题中，我们介绍了岭回归优化的限制条件。我们还介绍了相关系数的先验概率分布的贝叶斯解释，将很大程度地影响着先验概率分布，先验概率分布通常均值是0。\n",
    "\n",
    "因此，现在我们就来演示如何scikit-learn来应用这种解释。\n",
    "\n",
    "<!-- TEASER_END -->"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##Getting ready"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "岭回归和套索回归（lasso regression）用贝叶斯观点来解释，与频率优化观点解释相反。scikit-learn只实现了贝叶斯岭回归，但是在*How it works...*一节，我们将对比两种回归算法。\n",
    "\n",
    "首先，我们创建一个回归数据集："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.datasets import make_regression\n",
    "X, y = make_regression(1000, 10, n_informative=2, noise=20)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##How to do it..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们可以把岭回归加载进来拟合模型："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import BayesianRidge\n",
    "br = BayesianRidge()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "有两组相关系数，分别是`alpha_1 / alpha_2`和`lambda_1 / lambda_2`。其中，`alpha_*`是先验概率分布的$\\alpha$超参数，`lambda_*`是先验概率分布的$\\lambda$超参数。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，让我们不调整参数直接拟合模型："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ -1.39241213,   0.14671513,  -0.08150797,  37.50250891,\n",
       "         0.21850082,  -0.78482779,  -0.26717555,  -0.71319956,\n",
       "         0.7926308 ,   5.74658302])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "br.fit(X, y)\n",
    "br.coef_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在，我们来调整超参数，注意观察相关系数的变化："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ -1.38807423,   0.14050794,  -0.08309391,  37.3032803 ,\n",
       "         0.2254332 ,  -0.77031801,  -0.27005478,  -0.71632657,\n",
       "         0.78501276,   5.71928608])"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "br_alphas = BayesianRidge(alpha_1=10, lambda_1=10)\n",
    "br_alphas.fit(X, y)\n",
    "br_alphas.coef_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##How it works..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "因为是贝叶斯岭回归，我们假设先验概率分布带有误差和$\\alpha$参数，先验概率分布都服从$\\Gamma$分布。\n",
    "\n",
    "$\\Gamma$分布是一种极具灵活性的分布。不同的形状参数和尺度参数的$\\Gamma$分布形状有差异。**1e-06**是 scikit-learn里面`BayesianRidge`形状参数的默认参数值。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nqGYvTUQiwn0CbN26lYKCgurX+fn5bN26FYDNmzdzwgknJGQ/oWzYsIGZM2fWqMUuWbKEbdu2sXjx\nYjIzM8nMzOTUU08FvJp0SUlJjTxKSkrIzMwEoG3btowZM4aePXuSnp7O3XffzTvvvBNTWZ577jlW\nr15N7969OfPMM3n77bcB7xwcf/zxIbcpKipiyJAhdO7cmfbt2/P000+za9eukMcZCATIycmpPs5b\nbrmFHTt2xHyuoom2j5NPPpnMzEyysrJYsmQJmZmZ7Nu3r0YeJSUlZGVlAdCmTRt69OjBmDFjSE1N\n5eqrryYvL48lS5YkrMyg6XKlDqqa8Q8ePtjIJRFpOnJzc1m/fj29e/cGYOPGjXTr1g2AvLw81qxZ\nE3K7qgvlQiksLOSTTz6psSzU1f/5+fmMGjWKZ555JmQ++/fXHEZ78skns3z58urXa9eu5fDhw5x4\n4okA9O3bN2Q+sejZsyfTp08HYNasWVx55ZXs2rWLvLw8iouLQ25z7bXXMm7cOObOnUtaWhoTJkwI\n2QWRl5dHq1at2LVrFykpR9ZlFy1axLBhw8KWbc6cOZx99tkRyx9tH1XN81VWr17NunXrOHDgABkZ\nGQAsX76cUaNGAV6T/ltvvVVjmwYZxRGt6t+UHqgZ/6h4b+17xmTs+f/3fGMXRY5xyf4/H9yM//Of\n/9wGDRpkO3bssB07dtjZZ59t99xzj5mZFRcXW/v27W3BggVWUVFhmzdvts8++yyufVVUVFhpaak9\n9dRTdt5551lZWZkdPnzYzMw2bdpkXbt2tblz51p5ebmVlpba+++/b5s3bw6Z14oVKywrK8sWLVpk\nBw4csBEjRtiIESOq1z///PPWo0cPW7dunR08eNB+8IMf2OjRo6vXFxQUhO0ieOmll+zLL780M7P5\n8+dbmzZtrKyszDZs2GCZmZk2Y8YMCwQCtnPnTlu2bJmZmXXu3Lk6v6KiIuvcuXN1t0TtC/QuvfRS\nGz9+vO3bt88qKipszZo11d0P8SgtLbX9+/ebc85WrVpVo9k+3n2cddZZ9l//9V9WWlpqs2bNqtFM\nv3v3bsvOzrapU6daeXm5zZw50zp27Gi7du06Ip9wn3diaMZv9ACdyEey/+M3F2+uetOYjD1Z9GRj\nF0WOccn+P1/7avxx48ZZTk6O5eTk2Pjx42tcjf+Xv/zF+vbta5mZmdarVy+bN29eXPt64YUXzDlX\n4zFmzJjq9UVFRXb++edbhw4drFOnTjZ8+HDbuHFj2PymT59u+fn5lp6ebpdddpnt2bOnxvpJkyZZ\np06drFOnTjZ69Gjbu3evmZkdOnTIMjMzbdWqVSHzve6666xz586WkZFhp5xyis2ePbt63aJFi2zg\nwIHVV92/+OKLZmb22muvWUFBgWVmZtrw4cPt9ttvrxHsU1JSqoN9SUmJ3Xrrrda9e3dr166dDRgw\nwF599dW4zqWZVZ/DlJSU6r9V4t3H+vXrbfDgwdamTRv7xje+Uf2ZCD7uU0891TIyMuyb3/ymLV68\nOGQ+9Qn2up+9xO21la/xg5k/4JcX/ZKfnN0A40FFYuTfx7uxiyFBlixZwpQpU8J2PUjdhfu86372\n0iCqJtU5GFCfvYjUdPbZZ0ft95ajT1fjS9w0zl5EpGlRsJe4lZWXkeJSFOxFRJoIBXuJW2mglOzW\n2Qr2IiJNhIK9xK20vJSObTuqz15EpIlQsJe4lZWX0bFNR9XsRUSaCAV7iVtpwKvZK9iLiDQNCvYS\nt9LyUtXsRUSaEAV7iVtVsNfc+CKRFRYWsmDBgsYuRrO2fv16UlJSqKysbOyiJDUFe4lbWXmZmvFF\nYtAgNzQJY8aMGQwaNIj09HSGDBlS7/ymT59OQUEBGRkZXH755Ufcr/69997jtNNOIyMjg7y8PGbO\nnFnvfSaLbdu2cckll9CtWzdSUlLYuHFjYxep3hTsJW6lgVI6tOmgYC+SRDp27MjEiRO58847653X\nihUrqu+2t337dtq2bcttt91WvX7lypWMHDmSRx55hH379vHPf/6T008/vd77TRYpKSkMGzaMWbNm\nNXZREkbBXuJWWl7KcW2PU7AXicOhQ4e444476NatG926dWPChAkcPny4ev3s2bPp378/7dq1o2fP\nnsydOzeu/C+88EKuvPJKcnJyQq5funQpgwYNIjs7m/79+/PBBx+Ezevll1/mkksu4ZxzziE9PZ0H\nHniA119/nYMHva67Bx98kFtuuYWLL76YlJQUsrOzw96Lvrbi4mLOOOMM2rVrR9euXfnxj39cvW7x\n4sXVZczPz2fq1KkAvP322wwYMIB27dqRn5/PfffdFzb/kpISxo4dS25uLt27d+eee+6Ju4m/c+fO\n3HLLLZxxxhlxbZfMFOwlblVD7zTOXiR2Dz30EMXFxSxfvpzly5dTXFzMgw8+CHgB8Prrr+fxxx+n\npKSEDz/8kMLCQgBuu+02srOzQz769+8f0763bNnC8OHDuffee9mzZw+PPfYYV1xxRch7woNXc+/X\nr1/16+OPP55WrVqxevVqAIqKijAz+vbtS25uLqNGjTqimT+c8ePHM2HCBEpKSli3bh1XXXUVABs2\nbGDYsGGMHz+enTt3smzZsurjy8jIYNq0aZSUlPD222/z1FNPMXv27JD533DDDaSlpbF27Vo+/vhj\n5s2bx7PPPgt4PybCncvs7Gw++uijmI6hKdKNcCRupYFSslplARCoCNAytWUjl0gkPHdf/fvMbVL9\n76w3ffp0nnzySY477jgAJk2axM0338z999/Pc889x9ixY7nwwgsByM3Nrd5uypQpTJkypV77njZt\nGsOGDWPo0KEAXHTRRZxxxhm88847jB49+oj0Bw4coF27djWWZWVlsX//fgA2bdrEtGnTmDdvHjk5\nOVx//fXcfvvtTJs2LWpZ0tLS+Pzzz9m5cyfHHXccAwcOBLzz8+1vf5urr74agA4dOtChQwcAzj//\n/OrtTz31VK655ho++OADLr300hp5b9++nXfffZe9e/fSunVr2rRpwx133MEf//hHbrrpJs4555yY\nf5Q0Nwr2ErfS8lJat2hN25Zt+SrwFe1S20XfSKSRJCJQJ8LWrVspKCiofp2fn8/WrVsB2Lx5M9/9\n7ncbbN8bNmxg5syZvPnmm9XLysvLueCCC1i8eDH/8R//AXijBz755BMyMjIoKSmpkUdJSQmZmZkA\ntG3bljFjxtCzZ08A7r77bi666KKYyvLcc89x77330rt3b3r06MGkSZP47ne/y+bNm8N2BRQVFXHn\nnXeyYsUKDh8+zKFDh6pbBGofZyAQqNGVUVlZSX5+fkxla84U7CVupYFS2rRs83Wwb61gLxJNbm4u\n69evp3fv3gBs3LiRbt26AZCXl8eaNWtCbld1oVwoVcE5WKir//Pz8xk1ahTPPPNMyHyqauxVTj75\nZJYvX179eu3atRw+fJgTTzwRgL59+4bMJxY9e/Zk+vTpAMyaNYsrr7ySXbt2kZeXR3Fxcchtrr32\nWsaNG8fcuXNJS0tjwoQJIbsg8vLyaNWqFbt27SIl5che6kWLFjFs2LCwZZszZ06zvT2v+uwlbmXl\nZbRp0Yb0lunqtxeJ0YgRI3jwwQfZuXMnO3fu5P777+e6664DYOzYsbzwwgv87W9/o7Kyki1btrBq\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x16cd518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "from scipy.stats import gamma\n",
    "import numpy as np\n",
    "\n",
    "form = lambda x, y: \"loc={}, scale={}\".format(x, y)\n",
    "g = lambda x, y=1e-06, z=1e-06: gamma.pdf(x, y, z)\n",
    "g2 = lambda x, y=1e-06, z=1: gamma.pdf(x, y, z)\n",
    "g3 = lambda x, y=1e-06, z=2: gamma.pdf(x, y, z)\n",
    "rng = np.linspace(0, 5)\n",
    "f, ax = plt.subplots(figsize=(8, 5))\n",
    "\n",
    "ax.plot(rng, list(map(g, rng)), label=form(1e-06, 1e-06), color='r')\n",
    "ax.plot(rng, list(map(g2, rng)), label=form(1e-06, 1), color='g')\n",
    "ax.plot(rng, list(map(g3, rng)), label=form(1e-06, 2), color='b')\n",
    "ax.set_title(\"Different Shapes of the Gamma Distribution\")\n",
    "ax.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "你会看到，相关系数最终都会收缩到0，尤其当形状参数特别小的时候。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###There's more..."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "就像我前面介绍的，还有一种套索回归的贝叶斯解释。我们把先验概率分布看出是相关系数的函数；它们本身都是随机数。对于套索回归，我们选择一个可以产生0的分布，比如双指数分布（Double Exponential Distribution，也叫Laplace distribution）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeIAAAFCCAYAAAAt9d5NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmcVNWZ//HPw+aGqCAuIIILCLiBCqJGaEETXPklcQGj\nuCUxjttMdJI4mYwkMeOYOIlRM4lxi2vcNyJoNNqKRhGJosgiiCiLkVVEUWjo5/fHuaVF091V3V1V\n51b19/161aur+t6696lby3PPcs8xd0dERETiaBM7ABERkdZMiVhERCQiJWIREZGIlIhFREQiUiIW\nERGJSIlYREQkIiViicrMzjSzSUXa9q1mtsLMXi7G9nPsu8rMFjSy/E9m9vNSxlQuzGxXM1ttZpbH\nuo0e5zz3N8HMTm/JNrK2dbiZzcp6PN/MRhRi28n2ppvZ0EJtT9JBibiCJT8Ca5Iftczt2thxlYKZ\nHQ4cCXRz9yH1LD/TzDZkHZd5ZnaLmfUuUYie3JrMzGrN7JM67+ulBY6vZJLP6fDMY3d/39239gIM\nclDnWC0zs6fN7OTsddz9GHe/I89t7d7YOu4+yd37Zv+L5r/Pm5ysufs+7v58c7Yn6dUudgBSVA4c\n5+7PxA4kgp7AfHf/vJF1XnT3oUnJazfgEmCqmR3i7m+VIMacJb5G7Ofu8woWSVxOy45FLvu5+zwz\n6wwcA1xvZn3d/WfN2FaDcZpZO3df3+wopdVSibiVMrPfm9kDWY+vMrOnk/vbmdlfzGxJUrU73sy6\nZ61bbWY/N7MXk5LGY2a2vZndZWarzOwVM+uZtX6tmV1oZu+Y2VIz+2VD1Y5m1tfMnjKz5WY2y8xO\nauQ1dEv2vdzM5pjZt5P/nwPcCBySxHd5Q5sA8GCeu58PPAeMy9rHCWb2lpmtNLNnzaxv1rKNSkj1\nlWDM7LLkNb9rZqc28lqOM7PXk/28aGb7NrRuY8zscTO7OuvxPWZ2U3L/zGTb15nZR2Y2M7sk2tDx\nTJaNM7P7zOw2M/s4qSI9sM5zH0w+M/PM7MJ8nmtmdwC7AuMzJXsz65Uc2zbJOmeZ2Yzkue+Y2Xeb\nc2zcfYW73wmcB1xmZtsl269OPjOY2Z5m9lxyfJaa2Z+T/2dKodOSOE+yUC2+0Mx+YGYfADdb/VXl\ng5PP0AoLtS6bZb0fGzXLJK97j+Q1ngr8INnfo8nyL6q6zWwzM7vGzBYlt9+YWYdkWSa275vZh2a2\n2MzObM5xkxJwd90q9Aa8C4xoYNkWwGzgDOBwYCmhGhegM/B1YHOgI3Af8HDWc6uBtwmlyE7AW8Ac\nYDjQFrgNuCVr/Vrgb8C2QI9kv+cky84EJiX3twIWJDG1AQYkcfVr4DU8D1wPdAD2B5YARyTLzshs\nt4HnnlnfcuAs4J/J/T7AJ8CI5HX9e/I622W9rt2znnsr8LPkfhVQA1wNtAeGJtvqnbXuz5P7A4EP\ngUGEk4OxyXvXoYHYa4E9Gli2Y7KtI4BvAXOBrbJecw1wcfJ6TgY+ArbN43iOAz4DRiYx/jfwUrKs\nDTAV+E9CLdtuwDvAV3M9N+tzOjzrca/kNbZJHh8D7JbcHwp8CgzMOs4LGnmfN3qPkv+1T47D15LH\nzwJnJ/f/DFyW3O8AHNrQtrLe4yuTbW5eNx5gPvAG0B3YDngh630/kzqfwex9kPV5qu9YAT8D/g5s\nn9xeZNPP37jkvT46OW7bxP5d0m3Tm0rElc2AR5JSVuZ2DoC7fwacDvwGuAO4wN0XJ8tWuPvD7v65\nu39C+OEclrVdB25193fd/WNgIvC2uz/j7huA+wnJJdtV7v6Ruy8ArgHG1BPvccC77n6bu9e6++vA\nQ8AmpWIz6wEcCvzQ3de5+zTgJkISy7z25viAcCICcArwF3f/W/K6riacwBzayPPr7vcn7l7joV3v\n8WSbGZm2w+8CN7j7FA9uB9YCm7RtZ/lHnff1KAB3/5BQ4rudcJzHuvunWc9b4u6/dfcN7n4f4aTo\nuDyOJ4Sk8YS7O3AnIVlDOIHY3t2vcPf17v5u8tzReTw3J3efkGyT5Dj+lXDy2CzuXgMs48v3Ods6\noJeZdU+Ow99zbK4WuDx5j+trBnHgendf5O4rgV9Q/2e/IY19jk8lJN5l7r4M+CnhO51Rkyzf4O4T\nCSeCezVh31IiSsSVzYFR7r5d1u3mLxa6vwJk2hnvz/zfzLY0sxuSarBVhOrabcw2qk7+MOv+54TS\nU/bjjnViya6uex/oVk+8PYGDsxMM4cdmx3rW7QasqJNk3ieUPFqiO7A8ax/vZxYkSWRBE/axMjnh\nyXgP2Lme9XoCl9R53bs0sG7GwDrv61NZy/5CKAXNqieRLKrzOBPTzuQ+ntnv+Rpg86T6uCfQrU78\nlwE75PHcnMzsaDN7OakyX0koIXfJ57kNbK890BVYUc/iHxCS3ytJFfpZOTa31N3X5Vgnn89+c3Qj\nvH8NbXu5u9dmPV7Dpt9LSQEl4lbMzM4nVL8tJvwAZVxCqJYd7O7bEErDRsNn5/n0Ct21zv26CQHC\nD8lzdRLM1h7abutaDHQ2s+wfll2BhXnE0pivA5l2u0WEJANAciLSIyv2NcCWWc/dmY2PxXZmlr28\nZxJ3Xe8Dv6jzuju6+73NfA2/AGYAO5vZ6DrL6p5EZGJqyfFcQKjJyI6/k7sflyzP9flocHnSnvog\n8EtgB3ffDphAyzp3jQLWA69sEoj7h+7+XXfvDpwL/J813lO6OZ/9zGfgU7I+P2a2UxO3vZhQjV/f\ntqWMKBFXvoY6RfUBfk5oRxxL6BSSqS7sSGjTW2Whp2l9nZ2sgfsNudTMtk2qQC8C6ksyjwN9zOw0\nM2uf3AZZVgepjKSK++/AlUmnlf2AswnVnk1iZm3NbDczu47QBvnTZNF9wLFmNjwpRV1CKO1nSpmv\nA99Knj8yeW5dP01ex+HAsXxZ85B9YnMj8D0zG2zBVmZ2bJ2kuEnYDbyWoYS2x9OTv9eZWXYpaQcz\nuyiJ6SSgLzDB3RfS/OP5CrA66bS0RXI89jGzgxqLNcuHwB4NLOuQ3JYBtWZ2NPDVPGLKZgBm1tnM\nvkVoB/+fpKp44xVDJ6xdkocfEZJhplTZWJyN7ft8M+uefJd+DNyTLJsG7G1m+5vZ5mR1EszaX2Mn\nAX8G/tNCR8ntgf8iNDNJmVEirnyZ3qiZ24Nm1pbwhf0fd3/T3ecC/wHckSScawhtocsIP84T2fTs\n3Ovcb2w5wKOEDj2vEapOb85azwHcfTXhR3Y0odT5AaEjTIcGXtsYQolgMaEt+b/8y0u1cl2/6SS9\nqoFVhA47HYFBnly65O5vA6cB1xE6jR0LHO9fXqJyMXA8kKlCf7jOPj5Ili0mHO9zk23Wfd1Tge8Q\nEsQKQoewsTRuWp339ddmtjWho9z57v6Bu79AOM63ZD1vMtA7eT0/B76ZlZCaejwz8W8gtO8PIDR1\nLAX+SOjI1+hzE1cSEspKM/t+nW2vJpy43ZccmzGEz1JD26rPtOR9nkM4ufhXdx/XwLoHAS8n6z8K\nXOTu85Nl44DbkjhPbOB11Y3HgbsI7drvJDFckby2twkdrp4mtNVPqvPcm4H+yf4eqmc/VwCvEjqD\nvZHcv6KBOCTFLDR7NbJCONO/htDmdJO7X1VneRXhA5tpa3zQ3a9AJGFmtcCeXjnXvZal5PKVc9y9\n2R2dRKTwGh3QIyk5XU8YoWgRMMXMHnP3mXVWfc7dTyhSjCIiIhUrV9X0YGCuu89PuvzfQ+joUFcx\nR8WR8qcqsnRo9nCLIlI8uRJxdzbuer+QTXtdOnComU2zMHh6/0IGKOXP3duqWjq+5PpsTRggkjK5\nxprO5+z5H0APd1+T9Gh8hHDpi4iIiOSQKxEvIlw3mdGDOtcVJr0aM/cnmtn/mVlnd9/oYnkzU5WY\niIi0Ku6es+k2V9X0q0BvC4OwdyAMz/dY9gpmtmNmxCUzG0zoiV3fiDXRx/Msh9vll18ePYZyuelY\n6TjpWOk4pfmWr0ZLxO6+3swuAJ4kXL50s7vPNLNzk+U3ACcC55nZesJIQ3VH8hEREZEG5JyP2MNg\n4RPr/O+GrPu/A35X+NBEREQqn0bWSpmqqqrYIZQNHav86DjlT8cqPzpOhZVzZK2C7cjMS7UvERGR\n2MwML0BnLRERESkiJWIREZGIlIhFREQiUiIWERGJSIlYREQkIiViERGRiJSIRUREIlIiFhERiUiJ\nWEREJCIlYhERkYiUiEVERCJSIhYREYlIiVhERCQiJWIREZGIlIhFREQiUiIWERGJSIlYREQkIiVi\nERGRiJSIRUREIlIiFhERiahd7ABEpIA++gi+/32oqWl4nQsvhMGDSxeTiDRKiVikkrzyCkydCpde\nWv/yiRPhwQeViEVSRIlYpJLMmAFDh8Lpp9e/fOut4eabSxuTiDRKbcQilWTGDOjfv+Hl/fuHdUQk\nNZSIRSrJjBnQr1/Dy3ffHRYvhjVrSheTiDRKiVikUrjnLhG3awd77gmzZ5cuLhFplBKxSKVYsgTa\ntIGuXRtfT9XTIqmiRCxSKTKlYbPG1+vfH2bOLE1MIpKTErFIpchVLZ2hErFIqigRi1SKXB21MpSI\nRVJFiVikUuRbIu7dG+bPh7Vrix6SiOSmRCxSKWbOzC8Rd+gAvXrBnDlFD0lEclMiFqkEy5fDZ59B\nt275ra8OWyKpoUQsUglmzgztw7l6TGeonVgkNZSIRSpBvu3DGUrEIqmhRCxSCfJtH87o10+JWCQl\nlIhFKkFTS8R77QVz58L69cWLSUTyokQsUgmamoi33DJ07Jo3r3gxiUhelIhFyt3HH8OKFbDrrk17\nntqJRVJBiVik3M2cCX37hgkfmkKJWCQVlIhFyl1TO2plqMOWSCooEYuUu6a2D2eoRCySCkrEIuWu\nuYm4Xz+YPRtqawsfk4jkTYlYpNzlO+tSXVtvDV26wHvvFT4mEcmbErFIOVuzBj74AHbfvXnPV/W0\nSHQ5E7GZjTSzWWY2x8x+2Mh6g8xsvZl9o7AhikiDZs8O0xq2a9e856vDlkh0jSZiM2sLXA+MBPoD\nY8xskzqwZL2rgCeAPEedF5EWa277cIZKxCLR5SoRDwbmuvt8d68B7gFG1bPehcADwNICxycijWlu\n+3CGpkMUiS5XIu4OLMh6vDD53xfMrDshOf8++ZcXLDoRaVxLS8SZqmnX11YkllyJOJ9v5zXAj9zd\nCdXSqpoWKZXmDuaR0bkzbLUVLFpUuJhEpEly9fBYBPTIetyDUCrOdiBwj4UJybcHjjazGnd/rO7G\nxo0b98X9qqoqqqqqmh6xiARr14ZLj3r3btl2MqXiXXYpTFwirVR1dTXV1dVNfp55I1VSZtYOmA2M\nABYDrwBj3L3eRiUzuxUY7+4P1bPMG9uXiDTR9Olw0kktb+O94ALYc0/4138tTFwiAoCZ4e45a4kb\nLRG7+3ozuwB4EmgL3OzuM83s3GT5DQWJVkSarqUdtTL694dp01q+HRFplpwXH7r7RGBinf/Vm4Dd\n/awCxSUiubS0o1ZG//7w5z+3fDsi0iwaWUukXLW0o1ZG//7w1lvqOS0SiRKxSLkqVIm4a1cwgyVL\nWr4tEWkyJWKRcrR+PcydC3vt1fJtmWmELZGIlIhFytE770C3brDFFoXZnhKxSDRKxCLlqFDV0hka\n6lIkGiVikXJUqI5aGSoRi0SjRCxSjgpdItZ0iCLRKBGLlKNCDeaR0b07rFkDy5cXbpsikhclYpFy\nU1sLs2cXNhFnek6rnVik5JSIRcrNe+9Bly6w9daF3a4SsUgUSsQi5abQ7cMZ6rAlEoUSsUi5KXT7\ncIY6bIlEoUQsUm5UIhapKErEIuVm+nTYe+/Cb7dnT/joo3ATkZJRIhYpJ+vWhZmS9t+/8Ntu0yZs\n9x//KPy2RaRBSsQi5eStt2D33WGrrYqz/YMOgqlTi7NtEamXErFIOXn1VTjwwOJt/8ADwz5EpGSU\niEXKydSpxU/EKhGLlJQSsUg5KXYi3msv+PBDddgSKSElYpFykemoNWBA8fbRtm3YvjpsiZSMErFI\nuZg+vbgdtTLUTixSUkrEIuWi2NXSGWonFikpJWKRcqFELFKRlIhFykWpErE6bImUlBKxSDkoRUet\nDHXYEikpJWKRclCqjloZ6rAlUjJKxCLloFTV0hlqJxYpGSVikXKgRCxSsZSIRcrB1KlhQoZSyXTY\nWrmydPsUaaWUiEXSrpQdtTLUYUukZJSIRdIu01Fryy1Lu19VT4uUhBKxSNqVun04Q4lYpCSUiEXS\nrtTtwxkHHaRELFICSsQiaffqq3FKxH36qMOWSAkoEYuk2bp1MGNGaTtqZajDlkhJKBGLpFmsjloZ\naicWKTolYpE0i9VRK0OJWKTolIhF0uzVV+N01Mo46CCNOS1SZErEImkWu0Tcpw8sWaIOWyJFpEQs\nklYxO2plqMOWSNEpEYukVeyOWhlqJxYpKiVikbSK3T6coXZikaJSIhZJq9jtwxkqEYsUlRKxSFql\nJRGrw5ZIUSkRi6RRGjpqZajDlkhRKRGLpNH06bDHHvE7amVoAgiRolEiFkmjWBM9NOTAA9VhS6RI\nciZiMxtpZrPMbI6Z/bCe5aPMbJqZvWZmU81seHFCFWlF0tI+nKEOWyJF02giNrO2wPXASKA/MMbM\n+tVZ7Wl339/dBwJnAn8sRqAirUraErE6bIkUTa4S8WBgrrvPd/ca4B5gVPYK7v5p1sOOwLLChijS\nyqxdm56OWhnqsCVSNLkScXdgQdbjhcn/NmJm/8/MZgITgYsKF55IK5S2jloZGthDpCja5Vju+WzE\n3R8BHjGzw4E7gL3qW2/cuHFf3K+qqqKqqiqvIEValcmTYdCg2FFsatAgeOCB2FGIpFZ1dTXV1dVN\nfp65N5xrzWwIMM7dRyaPLwNq3f2qRp7zDjDY3ZfX+b83ti8RSYweDSNHwplnxo5kYwsXwsCBoa3Y\nLHY0IqlnZrh7zi9LrqrpV4HeZtbLzDoApwCP1dnRHmbhW2lmBwDUTcIikid3eO45GDYsdiSb2mUX\n6NQptF+LSME0WjXt7uvN7ALgSaAtcLO7zzSzc5PlNwDfBMaaWQ3wCTC6yDGLVK45c6B9e+jVK3Yk\n9Rs2LJwo7L137EhEKkajVdMF3ZGqpkVyu/HGkOjuvDN2JPX7059g4kS4997YkYikXqGqpkWklNJa\nLZ2RKRHrpFqkYJSIRdIize3DGb16QYcO8PbbsSMRqRhKxCJp8e67sH499O4dO5KGmX1ZKhaRglAi\nFkmL558PSS7tlwYNGxZiFZGCUCIWSYu0V0tnqJ1YpKCUiEXS4rnnYOjQ2FHktueeoQr93XdjRyJS\nEZSIRdJgwQJYvRr6948dSW5qJxYpKCVikTTIlIbT3j6coUQsUjBKxCJpUC7twxlKxCIFo0QskgaZ\nHtPlol8/+PRTeP/92JGIlD0lYpHYPvgAli6FffeNHUn+zEJVui5jEmkxJWKR2J5/Hg4/HNqU2ddR\n1dMiBVFm33yRClQuly3VNXSoErFIASgRi8RWbh21MvbdF5YtC1XrItJsSsQiMS1dCgsXwoABsSNp\nujZtQpW6SsUiLaJELBLT88/DYYdBu3axI2ketROLtJgSsUhM5XbZUl2aAEKkxZSIRWIq1/bhjAED\nYNGiUMUuIs2iRCwSy8qV8M47cOCBsSNpvrZtQ9W6SsUizaZELBLLpEkwZAi0bx87kpbRZUwiLaJE\nLBJLuVdLZ6jDlkiLKBGLxFIpifjAA8PcxCtWxI5EpCwpEYvEsGoVzJoFgwfHjqTl2rcPVeyTJsWO\nRKQsKRGLxPD3v8OgQbDZZrEjKQxdxiTSbErEIjFUSrV0htqJRZpNiVgkhkpLxIMGhar2VatiRyJS\ndpSIRUpt5Up4663QrlopNtssvJ5nn40diUjZUSIWKbUnngil4S22iB1JYR1/PIwfHzsKkbKjRCxS\nauPHh6RVaY4/Hh5/HGprY0ciUlaUiEVKqaYmlIiPOy52JIW3++7QpQtMmRI7EpGyokQsUkovvhgS\nVrdusSMpDlVPizSZErFIKVVqtXSGErFIkykRi5SKOzz2WGUn4iFDYPFieO+92JGIlA0lYpFSmT0b\nPvsMBg6MHUnxtG0LxxyjUrFIEygRi5TK+PGhk5ZZ7EiKS9XTIk2iRCxSKpXePpzx1a+GsbRXr44d\niUhZUCIWKYXly2HaNBg+PHYkxdepExx6KPz1r7EjESkLSsQipTBxIhxxROWNptUQVU+L5E2JWKQU\nWku1dMbxx8OECbBhQ+xIRFJPiVik2NatC9W0xx4bO5LS6dkTdtoJJk+OHYlI6ikRixTbpEnQp09I\nTK2JqqdF8qJELFJsra1aOkOJWCQvSsQixdQaRtNqyODBsHQpzJsXOxKRVFMiFimmGTNg/XrYb7/Y\nkZRemzahXVylYpFGKRGLFFOmWrrSR9NqiKqnRXJSIhYpptbaPpxx1FGh5/SqVbEjEUktJWKRYlm6\nFKZPDwN5tFYdO8Lhh8OTT8aORCS18krEZjbSzGaZ2Rwz+2E9y79lZtPM7A0ze9HMWmGDmEgdEybA\nkUfCZpvFjiQuVU+LNCpnIjaztsD1wEigPzDGzPrVWW0eMNTd9wN+Dvyx0IGKlJ3WXi2dcdxxYYjP\n9etjRyKSSvmUiAcDc919vrvXAPcAo7JXcPeX3D3TCDQZ2KWwYYqUmbVr4emnw9y8rV2PHuH20kux\nIxFJpXwScXdgQdbjhcn/GnIOMKElQYmUveeeg/79YYcdYkeSDqqeFmlQuzzW8Xw3ZmZHAGcDh9W3\nfNy4cV/cr6qqoqqqKt9Ni5SXhx6CE06IHUV6jBoFp5wCV13Vei/lkopXXV1NdXV1k59n7o3nWTMb\nAoxz95HJ48uAWne/qs56+wEPASPdfW492/Fc+xKpCJ9/Dt27w2uvwa67xo4mHdyhXz+45ZYwV7FI\nK2BmuHvOM898qqZfBXqbWS8z6wCcAjxWZ2e7EpLwafUlYZFW5S9/gQEDlISzmcEZZ8Dtt8eORCR1\ncpaIAczsaOAaoC1ws7tfaWbnArj7DWZ2E/B14P3kKTXuPrjONlQiltbh+OPhxBND4pEvLVgQTlAW\nLYLNN48djUjR5VsizisRF4ISsbQKS5aEKQ8XLgyDWcjGjjwSzj0XTjopdiQiRVfIqmkRydfdd4dO\nWkrC9Rs7Fm67LXYUIqmiErFIIR1wAPzqVzBiROxI0umTT2CXXWD2bNhxx9jRiBSVSsQipfbmm2F8\naV2W17COHcOlTHffHTsSkdRQIhYplNtvh9NPh7ZtY0eSbuo9LbIRVU2LFML69eFypWeegb59Y0eT\nbrW10KtXuMxrP80PI5VLVdMipfT002E8ZSXh3Nq0CTUHKhWLAErEIoVx222hR7DkZ+xYuOsuzcgk\nghKxSMutWhXmHh49OnYk5WOvvaBnT3jqqdiRiESnRCzSUvffHy5X6tIldiTlRdcUiwDqrCXSckOH\nwiWXhMtyJH8rVsBuu8F778G228aORqTg1FlLpBTmzYNZs+Doo2NHUn46dw5DXt5/f+xIRKJSIhZp\niTvuCG3DHTrEjqQ86ZpiEVVNizSbO+y5J9x7Lxx0UOxoytO6dWHIy5degj32iB2NSEGpalqk2F58\nMUznd+CBsSMpXx06wJgxoWZBpJVSIhZprsy1w5bzhFcaM3ZsqJ6urY0diUgUSsQizfHZZ/Dgg3Da\nabEjKX8HHABbbgkvvBA7EpEolIhFmuP22+Gww6B799iRlD8z+O534brrYkciEoU6a4k0VW1tGFP6\nppvCNcTScp98EiaCmDxZnbakYqizlkixjB8fBqA4/PDYkVSOjh1Dqfiaa2JHIlJyKhGLNNXQoXD+\n+XDKKbEjqSyLF8M++8DcuWGwD5EypxKxSDFMngzvvw/f/GbsSCpPt25hmNA//CF2JCIlpRKxSFOc\nfHLopHXxxbEjqUzTp8NRR8H8+bDZZrGjEWkRlYhFCm3ePHjmGTj77NiRVK599oEBA8JcxSKthBKx\nSL6uuQa+8x3YeuvYkVS2Sy+Fq6/WAB/SaigRi+RjxQq480648MLYkVS+4cNDtfQTT8SORKQklIhF\n8vGHP4SORN26xY6k8pl9WSoWaQXUWUskl7Vrw2ATTz0V2jCl+GpqwsAeDz+sSTWkbKmzlkih3HVX\n6ECkJFw67duHnun/+7+xIxEpOpWIRRpTWxsS8HXXwYgRsaNpXT7+GHbbDf7xD+jZM3Y0Ik2mErFI\nITzxROg4NHx47Ehan06dwqViv/1t7EhEikolYpHGDB8O55wD3/pW7EhapwULYP/9wzXc224bOxqR\nJlGJWKSlpk4N4x6ffHLsSFqvHj3g2GPhj3+MHYlI0ahELNKQU06BQYPCpTQSz+uvh2Q8dy5ssUXs\naETyphKxSEtMmQKTJsH3vhc7EhkwAA4+GK69NnYkIkWhErFIXe4wbBiMHQvf/nbsaATg7bfh0ENh\n5kzo2jV2NCJ5UYlYpLkefRRWroSzzoodiWT06RM6zP30p7EjESk4lYhFstXUwN57h+uGv/a12NFI\ntmXLoF8/eOEF2Guv2NGI5KQSsUhz3HBDGERCSTh9tt8efvAD+OEPY0ciUlAqEYtkrFoVqkCfegr2\n2y92NFKfzz+Hvn3htttCO75IiqlELNJU//3fcNxxSsJptvnmcOWVcMklmq9YKoZKxCIA8+eHWX7e\nfFNTHaZdbS0MGRImhdCIZ5Ji+ZaIlYhFIPyg9+4N48bFjkTyMWkSnHYazJqlQT4ktZSIRfI1ZQqM\nGhWuVe3YMXY0kq9vfCMM9KHOW5JSSsQi+XCHqio4/XQN3lFuNMiHpJw6a4nk49FHYcUKDd5Rjvr0\ngVNP1SAfUvZUIpbWKzN4x7XXwsiRsaOR5li2LFzO9OKLGuRDUqdgJWIzG2lms8xsjplt0hhjZn3N\n7CUz+9zMLmluwCIl9+tfw+67KwmXs+23hx/9CC64IDQziJShRkvEZtYWmA0cCSwCpgBj3H1m1jpd\ngZ7A/wNWuvv/NrAtlYglPd58E4YPh1dfhZ49Y0cjLbF+PRx2GJx5Jpx3XuxoRL5QqBLxYGCuu893\n9xrgHmAeNJz4AAAOzklEQVRU9gruvtTdXwVqmh2tSCmtWxdmVrrqKiXhStCuXRhp6yc/CXMWi5SZ\nXIm4O7Ag6/HC5H8i5euKK6B7d3XQqiR9+8J//mcoFW/YEDsakSbJlYhVlyyVZcqUMLHDjTeC5awx\nknJy0UWhdPyb38SORKRJ2uVYvgjokfW4B6FU3CzjskYtqqqqoqqqqrmbEmm6zz4LVdLXXgs77xw7\nGim0Nm3g1lth8GA4+ujQI16khKqrq6murm7y83J11mpH6Kw1AlgMvEKdzlpZ644DVquzlqTWJZfA\nwoVw772xI5FiuvFG+MMf4OWXoX372NFIK1awkbXM7GjgGqAtcLO7X2lm5wK4+w1mthOhN3UnoBZY\nDfR390/qbEeJWOJ57rkw+MMbb0CXLrGjkWJyh2OOCRNDXH557GikFdMQlyIZq1fD/vvDb38Lxx8f\nOxophUWLYOBAmDgxzKolEoESsUjGueeGUbRuuSV2JFJKd98Nv/gFTJ0a5jEWKTElYhGAJ56A730v\nVEl36hQ7GikldzjppDB62i9/GTsaaYWUiEUWLQo9aG+/HUaMiB2NxLB0aWiWuPVW+NrXYkcjrYxm\nX5LWbc2aMMfw+ecrCbdmXbuGXvKnnw6zZsWORqReKhFL5amthdGjoUMHuOMODdwh8Kc/hfbil19W\nr3kpmXxLxLkG9BApPz/7GSxYAM8+qyQswZlnwowZcOKJ8OST4SRNJCVUIpbKcs89YVq8yZNhxx1j\nRyNpsmEDfP3rsNNOYZhTnaRJkamNWFqfV16BCy+ERx9VEpZNtW0Ld90VqqevvTZ2NCJfUNW0VIaF\nC+Eb34Cbbw69ZEXqs/XWMH48HHII9OkTxqQWiUwlYil/n34aekhfdBGccELsaCTtevaEBx6AM86A\nt96KHY2I2oilzNXWwsknQ8eO4VpRtftJvu64A8aNC/0Jtt8+djRSgdRrWiqfO1x6Kfzzn/C3vykJ\nS9OcfnroSX3CCWEENo28JpGoRCzlyR0uvhheeilcjtK5c+yIpBzV1sK//AtMmxYmiNh229gRSQVR\nr2mpXJkfzylT4OmnlYSl+dq0gd//HgYNgqOOghUrYkckrZASsZSXDRvgO9+B6dNDSXibbWJHJOXO\nLEyROXRoGA512bLYEUkro0Qs5WP9ejjrLJg3L1Qjqk1PCsUMrr46XM50xBHw4YexI5JWRJ21pDzU\n1MDYsaG08vjjsOWWsSOSSmMWxqPu0AGqquCZZ2DnnWNHJa2AErGk37p1cOqpYUal8eM1ybsUj1m4\npKl9exg2LCTjXXaJHZVUOCViSbc1a2DMmHD/4Ydhs83ixiOtw49/HD5rw4bBU0/B7rvHjkgqmNqI\nJb3mz4fDDgttwfffryQspXXppeF2yCEhGYsUiRKxpNPTT8OQIWEYwttv17R1Esd558F994XP4S9/\nGa5fFykwDegh6eIeeq/++tfw5z+HTjMisS1YAN/8JvTqBbfcEoZUFclBA3pI+fn0Uxg9Gu69N4z/\nqyQsadGjBzz/fEjAQ4bA3LmxI5IKokQs6fDOO6EtbsstYdIk2HXX2BGJbGzzzcM0m+efD4ceChMm\nxI5IKoQSscT3+OPhh+173wvVfltsETsikfqZhXbjhx8OI7z97GdhoBmRFlAbscSzfDl8//vw3HNw\n553wla/Ejkgkf4sXw2mnwSefhJLyvvvGjkhSRm3Ekl7uYWL2ffcNs91Mn64kLOWnW7fQu/8734Hh\nw+Hyy2Ht2thRSRlSiVhK64MPQhvbzJmhFHHoobEjEmm5RYtClfW8eeFzffDBsSOSFFCJWNLFPbT/\n7r8/9O8Pr72mJCyVo3t3ePRR+MlPYNSo0OTy6aexo5IyoUQsxTdrFnz1q/C738Ff/wpXXKHxoqXy\nmMEpp4SmliVLQtPLhAkaBERyUiKW4nn/fTjnHDj8cBg5MlwbPGBA7KhEimv77UPnw+uvh0suCdfD\n//3vsaOSFFMilsJbtixUzQ0cCDvtBHPmhB+kdppjRFqRY46BN98Mw2OOHg0nnBAei9ShRCyFs3o1\n/PSn0LdvmLrwrbfC/K7bbhs7MpE42rWDs8+Gt9+GI46AI4+E008PnbpEEkrE0nIffxzGhu7dOwz9\n98oroVpup51iRyaSDptvDv/2b6F2aI89YNAguOCCMMOYtHpKxNJ8c+bAxReHgfAnTw5Txd1xh+Zu\nFWlIp04wblzowLjFFnDQQfCNb0B1tTp1tWJKxNI07qHn83HHhbmCt9oKpk0LEzVoZCGR/HTtCr/6\nVSgRH3VUuAZ5wIBwDfJnn8WOTkpMA3pIflavDj1Br702zA180UVw6qkaF1qkENxDjdK114bapW9/\nOyRnTX5S1vId0EOJWBq2bh088QTcfTdMnAgjRoQEPGxYuGZSRApvzpzQx+KOO2C//cIJ74knQufO\nsSOTJlIiluaprQ3zrt59Nzz4IOy995c/BNtvHzs6kdZj7dpwAnz33fDkk+EE+NRT4fjjQ5OQpJ4S\nseSvpgZefBHGjw9tvV27wpgx4dpHVY2JxPfxx/DIIyEpv/xy6KPx9a+Hy6G22SZ2dNIAJWJp3OLF\n4Wx7wgT4299gzz3DAASjR4exoEUknZYsgfvvDyfOL74IBx4IRx8dvr/77KNmoxRRIpaNrVnz5SVG\nEybAggWht+Yxx8DXvgY77hg7QhFpqjVr4NlnvzyprqkJSXnkyDC0bNeusSNs1ZSIW7slS8LZ8gsv\nhL9vvhkuLxoxIiTfgw/WkJMilcQ9jOA1YUK4xPCll8KgOocdFub7/spXQs2XSswlo0TcmqxZA2+8\nEaYWnDIlJN4PP4RDDvnyCzhoEGy5ZexIRaRUNmwIM0G98EK4TZoUSsxf+Uo4ER84MNzUCbNolIgr\n1bJl8PrrIelmbvPnQ79+4Ut1wAHhi7bPPtC2bexoRSQt3MOMaC+8EE7YX3st/JZ06hQGE8kk5oED\nQyfNNhrvqaWUiMvZ+vXw7rswe3YYCi/7VlMD++8fviyZL0///mGQDRGRpqitDb812Sf3r78OH30E\ne+0Vbn37fnnr3Vs1a02gRJxm7rB0aSjJvvvupn/ffx923nnjL0Hm/o47qo1HRIrr4483Lghk7r/z\nTugAtttuYYz5un932UU1cVkKlojNbCRwDdAWuMndr6pnnWuBo4E1wJnu/lo961R+InYPQ0EuXQof\nfBAuEVq0qP6/W2xR/wc581dDR4pI2mzYEAoK2YWH7PtLloTCQvfu0K3bpn+7dYMddoDttmsVVd8F\nScRm1haYDRwJLAKmAGPcfWbWOscAF7j7MWZ2MPBbdx9Sz7bKKxHX1oazwhUrYOXK8Df7/vLlIeEu\nXRo+fJm/7dqFM8add970g5h9v2PHendbXV1NVVVVaV9rmdKxyo+OU/50rPLT4HFau7b+Qkjm/uLF\n4bdy9Wro0iX8Vu6ww5d/u3QJQ3l27hySdfb97bYruys98k3EuV7VYGCuu89PNnoPMAqYmbXOCcBt\nAO4+2cy2NbMd3f3DZkVeKpMnh5lOVq0KCTfzN3P/k09Cssz+QGT/3XHHcDlQ9oeoa9cWt5/ohyB/\nOlb50XHKn45Vfho8TpttFmr0evVqfAM1NaHj6ZIlGxdkli8PVeCZAk/2348+CvM6d+oUbttss/H9\nYcPgjDOK8GqLL1ci7g4syHq8EDg4j3V2AdKdiLfZJoxIk3kz6/7demu1dYiIFEP79qHWcOed83+O\nO3z66cYFp+y/3boVL94iy5WI861Lrlv0Tn8ddKYTlIiIpJ9ZqKXs2LGsk259crURDwHGufvI5PFl\nQG12hy0z+wNQ7e73JI9nAcPqVk2bWfqTs4iISAEVoo34VaC3mfUCFgOnAGPqrPMYcAFwT5K4P6qv\nfTifYERERFqbRhOxu683swuAJwmXL93s7jPN7Nxk+Q3uPsHMjjGzucCnwFlFj1pERKRClGxADxER\nEdlUSa+oNrMLzWymmU03s00GBpGNmdklZlZrZp1jx5JGZvar5PM0zcweMjPNkF6HmY00s1lmNsfM\nfhg7njQysx5m9qyZvZX8Nl0UO6Y0M7O2ZvaamY2PHUuaJZfyPpD8Rs1Imm7rVbJEbGZHEK453s/d\n9wGuLtW+y5GZ9QCOAt6LHUuK/RXY2933B94GLoscT6okA/JcD4wE+gNjzKxf3KhSqQb4N3ffGxgC\nnK/j1KiLgRmUw9Uxcf0WmODu/YD92Hj8jY2UskR8HnClu9cAuPvSEu67HP0a+EHsINLM3Z9y99rk\n4WTC9evypS8G5Em+d5kBeSSLu//T3V9P7n9C+MGsrOtjCsTMdgGOAW5i08tWJZHUzh3u7rdA6G/l\n7qsaWr+Uibg3MNTMXjazajM7qIT7LitmNgpY6O5vxI6ljJwNTIgdRMrUN9hO90ixlIXkCpGBhBM7\n2dRvgH8HanOt2MrtBiw1s1vN7B9mdqOZNTjsYkEH7jSzp4Cd6ln042Rf27n7EDMbBNwH7F7I/ZeT\nHMfqMuCr2auXJKgUauQ4/Ye7j0/W+TGwzt3vLmlw6aeqwyYws47AA8DFSclYspjZccASd3/NzKpi\nx5Ny7YADCPMwTDGza4AfAf/V0MoF4+5HNbTMzM4DHkrWm5J0Quri7ssLGUO5aOhYmdk+hLOpaRam\nO9wFmGpmg919SQlDTIXGPlMAZnYmoapsREkCKi+LgB5Zj3sQSsVSh5m1Bx4E7nT3R2LHk1KHAick\nE/1sDnQys9vdfWzkuNJoIaFWc0ry+AFCIq5XKaumHwGGA5hZH6BDa03CjXH36e6+o7vv5u67Ed7Q\nA1pjEs4lmaLz34FR7v557HhS6IsBecysA2FAnscix5Q6Fs54bwZmuPs1seNJK3f/D3fvkfwujQae\nURKun7v/E1iQ5DoIMxi+1dD6pZxT6hbgFjN7E1gH6A3Mj6oXG3Yd0AF4Kqk9eMnd/yVuSOnR0IA8\nkcNKo8OA04A3zCwzl/pl7v5ExJjKgX6bGnchcFdyEvwOjQx2pQE9REREIirpgB4iIiKyMSViERGR\niJSIRUREIlIiFhERiUiJWEREJCIlYhERkYiUiEVERCJSIhYREYno/wOhwzUiOUqplwAAAABJRU5E\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x8ee5400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from scipy.stats import laplace\n",
    "form = lambda x, y: \"loc={}, scale={}\".format(x, y)\n",
    "g = lambda x: laplace.pdf(x)\n",
    "rng = np.linspace(-5, 5)\n",
    "f, ax = plt.subplots(figsize=(8, 5))\n",
    "\n",
    "ax.plot(rng, list(map(g, rng)), color='r')\n",
    "ax.set_title(\"Example of Double Exponential Distribution\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "留意看x轴为0处的顶点。这将会使套索回归的相关系数为0。通过调整超参数，还有可能创建出相关系数为0的情况，这由问题的具体情况决定。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
